查看原文
其他

科幻特效:UI中的噪波效果

2017-10-07 李晔 Unity官方平台

Unity中实现一些科幻特效,需要在UI或者物体表面产生一些颗粒状的波动。今天这篇文章将由Unity开发者李晔,为大家分享在AR中实现UI噪波效果的方法。

 

介绍噪波

噪波也叫噪声或噪点,在图像中往往表现为不规则的杂点或波纹。科幻影视作品中较为常见。例如:空间的扭曲效果,机械表面的换装效果,受到震荡波影响的表面颤抖效果,模拟全息通信不稳定效果等,这些都属于噪波效果。随着游戏中对画面效果要求的提升以及VR技术的出现,特效的需求已经不再仅仅满足于手游级别的粒子光影,尤其是在AR/MR技术中由于加入了现实影像的对比,使得特效的设计标准越来越多地参考影视中的作品以提高与真实世界的协调与融合度。噪波效果是影视特效中常用的一种方式,合理的加入一些噪波效果,可以在保证真实度的前提下很大程度上提升整个画面的科幻效果。

 

下面以AR画面中UI界面的出现为例,为大家分享在UI里加入噪波效果的实现方法。

 

AR中实现UI的噪波效果

实现UI从无到逐渐出现,扭曲波动最后稳定显示的效果。如下图所示:


 

效果使用C#脚本与Shader结合实现,用一个噪波图片,提取其中的噪波信息与主纹理叠加。

 

 

定义Shader,接收C#传来的振动值与振动进度。获取噪波纹理中的噪波偏移值使顶点函数中的坐标值发生偏移。用振动进度来控制显示的Alpha透明度,为了让透明度的变化更平滑,给振动进度乘以二次方。

 


在C#脚本中用曲线来控制波动时间与波动,用一个浮点数来调控振动幅度。代码如下:

 


指定UI和噪波纹理,调整时间曲线就实现UI的噪波效果了。


 

结语

Unity可以实现风格各异的超酷炫的游戏特效,希望大家可以应用到自己的项目中。后面我们还会继续为大家分享更多特效方面的精彩内容在Unity官方中文社区(unitychina.cn),请保持关注。


推荐阅读

使用ARCore制作Portal Painter

混合现实未来展望(二)

混合现实未来展望(一)

Unity的机器学习代理工具

使用Unity制作逼真的环境效果


点击“阅读原文”进入Unity官方中文社区

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存